package com.zxlspace.collection2;


/**
 * 泛型类：声明时使用泛型
 * 字母：
 * T type 代表类型
 * K,V 分别代表键值中的key，value
 * E 代表element
 * 使用时确定类型
 * 注意：
 * 1.泛型只能使用引用数据类型，不能使用基本数据类型
 * 2.泛型声明字母类时不能使用在静态属性或静态方法上
 * @param <T1>
 * @param <T2>
 */
public class Student<T1, T2> {

    private T1 javaScore;

    private T2 oracleScore;

    public T1 getJavaScore() {
        return javaScore;
    }

    public void setJavaScore(T1 javaScore) {
        this.javaScore = javaScore;
    }

    public T2 getOracleScore() {
        return oracleScore;
    }

    public void setOracleScore(T2 oracleScore) {
        this.oracleScore = oracleScore;
    }

    public static void main(String[] args) {
        //使用时制定类型（引用类型）
        Student<String, Integer> student = new Student<>();
        //1.安全：类型检查
        student.setJavaScore("100");
        //2.省心：类型自动转换
        int it = student.getOracleScore();  //自动拆箱
    }
}
